/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.servlets;

import br.com.business.LocacaoBO;
import br.com.model.Item;
import br.com.model.ItemLocado;
import br.com.model.Locacao;
import br.com.model.Pagamento;
import br.com.type.CodigoBarras;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Roice
 */
public class CadastroLocacao extends HttpServlet {
        private static final long serialVersionUID = 1L;

    public CadastroLocacao() {
        super();
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
        //TODO
    }
     @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Pagamento pagamento = null;
        ItemLocado itemloc = null;
        CodigoBarras cod = null;
        LinkedList <ItemLocado> listaItemLocado  = new LinkedList<ItemLocado>(); 
        LinkedList <Pagamento> listaPagamento = new LinkedList<Pagamento>();
        Locacao loc = null;
        Item it = null;
        
        String data = req.getParameter("datalocacao"); 
       
        String[] items = req.getParameterValues("items");
       // double pag = Double.parseDouble(req.getParameter("pagamento"));
        Date dataloc = null;
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        try {
            dataloc = new Date(sdf.parse(data).getTime());          
        } catch (ParseException ex) {
            Logger.getLogger(CadastroReserva.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        if(items != null){
              for (int i = 0; i < items.length; i++) {
                try{
                    cod = new CodigoBarras(items[i]); 
                    it = new Item(cod);
                   // pagamento = new Pagamento(pag);
                  //  itemloc = new ItemLocado(it, pag);
                    listaItemLocado.add(itemloc);
                    listaPagamento.add(pagamento);
                } 
                catch (Exception ex) {
                    Logger.getLogger(CadastroReserva.class.getName()).log(Level.SEVERE, null, ex);
                }
              }
        }

        
        loc = new Locacao(listaItemLocado,listaPagamento,dataloc);
        
        LocacaoBO locacaoBO = new LocacaoBO();
        
       
        Iterator  ite = listaItemLocado.iterator();
        ItemLocado itemLista = null;     
        locacaoBO.insereItem(loc);
        
            try (PrintWriter out = resp.getWriter()) {
                out.println("<p>Número de inscrição: " + loc.getData()+"</p>");
                while(ite.hasNext()){
                    itemLista = (ItemLocado) ite.next();
                    out.println("<p>CodigoBarras: " + itemLista.getItem().getNumeroSerie().getCodigoBarras()+ "</p>");
                }
                  //  out.println("<p>Pagamento: " + pagamento.getValor()+ "</p>");
                    
     
                
                out.println("<a href='index.jsp'>P�gina Inicial</a>");
            }

        
        
        
     }
     
     
     
     
}
